package exception;

import java.io.FileOutputStream;
import java.io.IOException;

/*JDK7之后推出了一个新特性:自动关闭特性*/
public class AutoCloseableDemo {
    public static void main(String[] args) {
        /*java编译器认可,编译完成后会自动还原成finally块的形式(参考FinallyDemo2)
        * ()只能放实现了Closeable的接口
        *
            自动关闭特性是编译器认可的,而非虚拟机.编译器在编译的时候回将代码改为FinallyDemo2的样子
         */
        try(
                //只有实现了AutoCloseable接口的类才可以在try()中定义,JAVA IO中所有的流均实现了该接口
        FileOutputStream fos = new FileOutputStream("src/Exception/fos.dat");
        ){
            fos.write(1);
        }catch (IOException e){
            System.out.println("出错了");
        }finally {
            System.out.println("其他操作,close自动添加");
        }

    }
}
